From 1bf4d188b39818e7b71eb3a37384cb005401fdd7 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Sat, 19 Sep 2015 20:41:40 -0400 Subject: [PATCH] Extract a function for getting resolved packages from a registry This code was happening in both cargo fetch and cargo compile and had a slightly different error message in each ;) --- src/cargo/ops/cargo_compile.rs | 9 ++------- src/cargo/ops/cargo_fetch.rs | 14 +++++++++----- src/cargo/ops/mod.rs | 2 +- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/cargo/ops/cargo_compile.rs b/src/cargo/ops/cargo_compile.rs index e91913044..80e380fb2 100644 --- a/src/cargo/ops/cargo_compile.rs +++ b/src/cargo/ops/cargo_compile.rs @@ -28,7 +28,7 @@ use std::path::{Path, PathBuf}; use std::sync::Arc; use core::registry::PackageRegistry; -use core::{Source, SourceId, PackageSet, Package, Target, PackageId}; +use core::{Source, SourceId, PackageSet, Package, Target}; use core::{Profile, TargetKind}; use core::resolver::Method; use ops::{self, BuildOutput, ExecEngine}; @@ -142,12 +142,7 @@ pub fn compile_pkg<'a>(package: &Package, try!(ops::resolve_with_previous(&mut registry, package, method, Some(&resolve), None)); - let req: Vec = resolved_with_overrides.iter().map(|r| { - r.clone() - }).collect(); - let packages = try!(registry.get(&req).chain_error(|| { - human("Unable to get packages from source") - })); + let packages = try!(ops::get_resolved_packages(&resolved_with_overrides, &mut registry)); (packages, resolved_with_overrides, registry.move_sources()) }; diff --git a/src/cargo/ops/cargo_fetch.rs b/src/cargo/ops/cargo_fetch.rs index 612d88c05..b1e5c213f 100644 --- a/src/cargo/ops/cargo_fetch.rs +++ b/src/cargo/ops/cargo_fetch.rs @@ -1,7 +1,7 @@ use std::path::Path; use core::registry::PackageRegistry; -use core::{Package, PackageId}; +use core::{Package, PackageId, Resolve}; use ops; use util::{CargoResult, Config, human, ChainError}; @@ -10,10 +10,14 @@ pub fn fetch(manifest_path: &Path, config: &Config) -> CargoResult<()> { let package = try!(Package::for_path(manifest_path, config)); let mut registry = PackageRegistry::new(config); let resolve = try!(ops::resolve_pkg(&mut registry, &package)); + let _ = get_resolved_packages(&resolve, &mut registry); + Ok(()) +} +pub fn get_resolved_packages(resolve: &Resolve, registry: &mut PackageRegistry) + -> CargoResult> { let ids: Vec = resolve.iter().cloned().collect(); - try!(registry.get(&ids).chain_error(|| { - human("unable to get packages from source") - })); - Ok(()) + registry.get(&ids).chain_error(|| { + human("Unable to get packages from source") + }) } diff --git a/src/cargo/ops/mod.rs b/src/cargo/ops/mod.rs index 545187a98..e5736071e 100644 --- a/src/cargo/ops/mod.rs +++ b/src/cargo/ops/mod.rs @@ -20,7 +20,7 @@ pub use self::cargo_package::package; pub use self::registry::{publish, registry_configuration, RegistryConfig}; pub use self::registry::{registry_login, search, http_proxy_exists, http_handle}; pub use self::registry::{modify_owners, yank, OwnersOptions}; -pub use self::cargo_fetch::{fetch}; +pub use self::cargo_fetch::{fetch, get_resolved_packages}; pub use self::cargo_pkgid::pkgid; pub use self::resolve::{resolve_pkg, resolve_with_previous}; -- 2.30.2